﻿using Newtonsoft.Json;
using Simple.Contracts.Models.Common.File;
using Simple.Contracts.Models.Common.Page;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace Simple.Contracts.Models
{
    internal class EmployeeModel
    {
    }

    /// <summary>
    /// 获取员工列表
    /// </summary>
    public class EmployeeListInput : PageInput
    {
        /// <summary>
        /// 姓名
        /// </summary>
        public string? name { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public int? status { get; set; }

        /// <summary>
        /// 角色
        /// </summary>
        public List<long>? roleIds {  get; set; }
    }

    /// <summary>
    /// 员工
    /// </summary>
    public class EmployeeDto
    {
        /// <summary>
		/// 员工Id
		/// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 员工姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 员工手机号
        /// </summary>
        public string Phone { get; set; }

        /// <summary>
        /// 性别：1=男、2=女
        /// </summary>
        public int Gender { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string IdCard { get; set; }

        /// <summary>
        /// 生日
        /// </summary>
        public string Brithday {  get; set; }

        /// <summary>
        /// 状态：0=禁用、1=启用
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 居住地址
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// 头像Url
        /// </summary>
        public string AvatarUrl { get; set; }

        /// <summary>
        /// 员工照片
        /// </summary>
        public List<ImageModel>? PhotoUrls { get; set; }

        /// <summary>
		/// 健康证
		/// </summary>
        public string HealthCertificateUrl { get; set; }

        /// <summary>
		/// 护理证
		/// </summary>
        public string NursingCertificateUrl { get; set; }

        /// <summary>
        /// 荣誉证书
        /// </summary>
        public string HonorCertificateUrl { get; set; }

        /// <summary>
        /// 身高（单位CM）
        /// </summary>
        public int? Height { get; set; }

        /// <summary>
        /// 体重（单位KG）
        /// </summary>
        public int? Weight { get; set; }

        /// <summary>
        /// 几年工作经验
        /// </summary>
        public int? WorkYear { get; set; }

        /// <summary>
        /// 户籍所在地
        /// </summary>
        public string RegisteredResidence { get; set; }

        /// <summary>
        /// 属相
        /// </summary>
        public string ChineseZodiac { get; set; }

        /// <summary>
        /// 教育背景：小学、初中、高中、专科、本科、硕士、博士
        /// </summary>
        public string Educational { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        public string Email { get; set; }


        /// <summary>
        /// 创建时间
        /// </summary>
        public string CreateTime { get; set; }

        /// <summary>
        /// 是否删除：0=未删除、1=已删除
        /// </summary>
        public int IsDelete { get; set; }


        /// <summary>
        /// 角色Id
        /// </summary>
        public List<long> roleIds { get; set; }

        /// <summary>
        /// 角色名称
        /// </summary>
        public List<string> roleNames { get; set; }
    }

    /// <summary>
    /// 保存员工信息
    /// </summary>
    public class EmployeeSaveInput
    {
        /// <summary>
        /// 员工Id
        /// </summary>
        public long? Id { get; set; }

        /// <summary>
        /// 员工姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 员工手机号
        /// </summary>
        public string Phone { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string IdCard { get; set; }

        /// <summary>
        /// 居住地址
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 头像Url
        /// </summary>
        public string? AvatarUrl { get; set; }

        /// <summary>
        /// 员工照片
        /// </summary>
        public List<ImageModel>? PhotoUrls { get; set; }

        /// <summary>
		/// 健康证
		/// </summary>
        public string? HealthCertificateUrl { get; set; }

        /// <summary>
		/// 护理证
		/// </summary>
        public string? NursingCertificateUrl { get; set; }

        /// <summary>
        /// 荣誉证书
        /// </summary>
        public string? HonorCertificateUrl { get; set; }

        /// <summary>
        /// 身高（单位CM）
        /// </summary>
        public int? Height { get; set; }

        /// <summary>
        /// 体重（单位KG）
        /// </summary>
        public int? Weight { get; set; }

        /// <summary>
        /// 几年工作经验
        /// </summary>
        public int? WorkYear { get; set; }

        /// <summary>
        /// 户籍所在地
        /// </summary>
        public string? RegisteredResidence { get; set; }

        /// <summary>
        /// 教育背景：小学、初中、高中、专科、本科、硕士、博士
        /// </summary>
        public string? Educational { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        public string? Email { get; set; }

        /// <summary>
        /// 角色Id
        /// </summary>
        public List<long>? roleIds { get; set; }
    }

    /// <summary>
    /// 删除员工
    /// </summary>
    public class EmployeeDeleteInput
    {
        /// <summary>
        /// 员工id
        /// </summary>
        public List<long> id {  get; set; }
    }

    /// <summary>
    /// 重置员工密码
    /// </summary>
    public class EmployeeResetPasswordInput
    {
        /// <summary>
        /// 员工Id
        /// </summary>
        public long id {  get; set; }
    }

    /// <summary>
    /// 设置员工状态
    /// </summary>
    public class EmployeeSetStatusInput
    {
        /// <summary>
        /// 员工Id
        /// </summary>
        public long id { get; set; }

        /// <summary>
        /// 状态：0=禁用、1=启用
        /// </summary>
        public int Status { get; set; }
    }
}
